Web Service Endpoints তৈরি এবং ব্যবহার

Web Development - অ্যাপাচি সিএক্সএফ (Apache CXF) - Endpoints এবং Interceptors (এন্ডপয়েন্ট এবং ইন্টারসেপ্টরস) |

ওয়েব সার্ভিস এন্ডপয়েন্ট (Endpoints) হলো সেই স্থান যেখানে সার্ভিসের অপারেশনগুলি ক্লায়েন্ট থেকে এক্সিকিউট করা যায়। Apache CXF ব্যবহার করে ওয়েব সার্ভিসে এন্ডপয়েন্ট তৈরি এবং ব্যবহার করা একটি সাধারণ প্রক্রিয়া যা SOAP বা RESTful সার্ভিসের মাধ্যমে কার্যকরী হয়। এখানে আমরা SOAP ওয়েব সার্ভিসের এন্ডপয়েন্ট তৈরি করার প্রক্রিয়া বিস্তারিতভাবে দেখব, যা একইভাবে RESTful ওয়েব সার্ভিসেও প্রয়োগ করা যেতে পারে।


SOAP Web Service Endpoint তৈরি

Apache CXF এ SOAP ওয়েব সার্ভিসের জন্য এন্ডপয়েন্ট তৈরি করার জন্য মূলত তিনটি ধাপ অনুসরণ করা হয়:

  1. সার্ভিস ইন্টারফেস তৈরি
  2. সার্ভিস ইমপ্লিমেন্টেশন তৈরি
  3. এন্ডপয়েন্ট প্রকাশ এবং কনফিগারেশন

1. সার্ভিস ইন্টারফেস তৈরি

প্রথমে আপনাকে একটি Java ইন্টারফেস তৈরি করতে হবে যা ওয়েব সার্ভিসের অপারেশনগুলো ডিফাইন করবে। ইন্টারফেসে @WebService অ্যানোটেশন ব্যবহার করে ওয়েব সার্ভিসের মেথডগুলো ডিফাইন করা হয়।

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface HelloWorld {
    @WebMethod
    String sayHello(String name);
}
  • @WebService: এই অ্যানোটেশনটি ক্লাস বা ইন্টারফেসকে ওয়েব সার্ভিস হিসেবে চিহ্নিত করে।
  • @WebMethod: এটি মেথডের উপর ব্যবহৃত হয় এবং ওয়েব সার্ভিস অপারেশন হিসেবে সেটিকে চিহ্নিত করে।

2. সার্ভিস ইমপ্লিমেন্টেশন তৈরি

এরপর আপনাকে ওয়েব সার্ভিসের কার্যকরী বাস্তবায়ন তৈরি করতে হবে। এই ক্লাসটি ইন্টারফেসের মেথডগুলির বাস্তবায়ন করবে।

import javax.jws.WebService;

@WebService(endpointInterface = "com.example.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

    @Override
    public String sayHello(String name) {
        return "Hello, " + name;
    }
}
  • endpointInterface: এই অ্যানোটেশনটি ওয়েব সার্ভিসের ইন্টারফেসের ক্লাস উল্লেখ করে, যাতে ইমপ্লিমেন্টেশন সঠিক ইন্টারফেসে প্রকাশ পায়।

3. এন্ডপয়েন্ট প্রকাশ এবং কনফিগারেশন

এখন, Apache CXF এর মাধ্যমে এই সার্ভিসটি একটি URL-এ প্রকাশ করতে হবে, যাতে ক্লায়েন্ট এই সার্ভিসে অ্যাক্সেস করতে পারে।

import org.apache.cxf.jaxws.EndpointImpl;

public class Server {

    public static void main(String[] args) {
        // Create service implementation
        HelloWorldImpl implementor = new HelloWorldImpl();

        // Create endpoint and publish it
        EndpointImpl endpoint = new EndpointImpl(implementor);
        endpoint.publish("http://localhost:8080/helloWorld");
    }
}
  • EndpointImpl: এটি Apache CXF এর একটি ক্লাস যা ওয়েব সার্ভিসের এন্ডপয়েন্ট তৈরি এবং প্রকাশ করতে ব্যবহৃত হয়।
  • publish(): এটি একটি URL এ ওয়েব সার্ভিস প্রকাশ করার জন্য ব্যবহৃত হয়।

এখানে, http://localhost:8080/helloWorld URL এ ওয়েব সার্ভিসটি প্রকাশিত হবে।


RESTful Web Service Endpoint তৈরি

Apache CXF এ RESTful ওয়েব সার্ভিসের জন্য JAX-RS API ব্যবহার করা হয়। নিম্নলিখিত ধাপগুলির মাধ্যমে RESTful সার্ভিসের এন্ডপয়েন্ট তৈরি করা হয়।

1. REST Service Interface তৈরি

প্রথমে একটি ইন্টারফেস তৈরি করতে হবে যা REST API এর জন্য বিভিন্ন HTTP মেথড ডিফাইন করবে (যেমন GET, POST, PUT, DELETE)।

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;

@Path("/hello")
public interface HelloWorldService {

    @GET
    String sayHello(@QueryParam("name") String name);
}
  • @Path: এই অ্যানোটেশনটি ওয়েব সার্ভিসের URL পাথ ডিফাইন করে।
  • @GET: HTTP GET মেথডের জন্য এটি ব্যবহৃত হয়।

2. REST Service ইমপ্লিমেন্টেশন তৈরি

এবার ইন্টারফেসটি ইমপ্লিমেন্ট করে সার্ভিসের কার্যকরী বাস্তবায়ন তৈরি করতে হবে।

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;

@Path("/hello")
public class HelloWorldServiceImpl implements HelloWorldService {

    @Override
    public String sayHello(String name) {
        return "Hello, " + name;
    }
}

3. REST Endpoint প্রকাশ এবং কনফিগারেশন

এখন, Apache CXF এর মাধ্যমে RESTful সার্ভিসটি প্রকাশ করতে হবে।

import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;

public class RestServer {

    public static void main(String[] args) {
        // Create service implementation
        HelloWorldServiceImpl implementor = new HelloWorldServiceImpl();

        // Create and configure the JAX-RS server
        JAXRSServerFactoryBean factoryBean = new JAXRSServerFactoryBean();
        factoryBean.setServiceBean(implementor);
        factoryBean.setAddress("http://localhost:8080/helloWorld");

        // Publish the REST endpoint
        factoryBean.create();
    }
}
  • JAXRSServerFactoryBean: এটি CXF-এর ক্লাস যা JAX-RS সার্ভার তৈরি এবং কনফিগার করতে ব্যবহৃত হয়।
  • setServiceBean(): এটি ওয়েব সার্ভিসের ইমপ্লিমেন্টেশন সেট করতে ব্যবহৃত হয়।
  • setAddress(): এটি সার্ভিসের প্রকাশিত URL সেট করতে ব্যবহৃত হয়।

ক্লায়েন্ট থেকে Endpoint ব্যবহার

এন্ডপয়েন্ট তৈরি হয়ে গেলে, এখন ক্লায়েন্ট অ্যাপ্লিকেশন থেকে সেই ওয়েব সার্ভিসে রিকোয়েস্ট পাঠানো যেতে পারে। SOAP এবং RESTful উভয় সার্ভিসের জন্য ক্লায়েন্ট তৈরি করা যেতে পারে।

SOAP ক্লায়েন্ট উদাহরণ

import javax.xml.ws.Service;
import java.net.URL;

public class HelloWorldClient {

    public static void main(String[] args) throws Exception {
        URL url = new URL("http://localhost:8080/helloWorld?wsdl");
        QName qname = new QName("http://example.com", "HelloWorldImplService");

        Service service = Service.create(url, qname);
        HelloWorld helloWorld = service.getPort(HelloWorld.class);
        
        String response = helloWorld.sayHello("John");
        System.out.println(response);
    }
}

RESTful ক্লায়েন্ট উদাহরণ

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.Response;

public class HelloWorldClient {

    public static void main(String[] args) {
        Client client = ClientBuilder.newClient();
        Response response = client.target("http://localhost:8080/helloWorld/hello")
                                 .queryParam("name", "John")
                                 .request()
                                 .get();

        String output = response.readEntity(String.class);
        System.out.println(output);
    }
}

সারাংশ

Apache CXF দিয়ে ওয়েব সার্ভিসের এন্ডপয়েন্ট তৈরি করা এবং তা ক্লায়েন্টের মাধ্যমে ব্যবহার করা একটি সহজ এবং কার্যকরী প্রক্রিয়া। SOAP এবং RESTful ওয়েব সার্ভিস উভয়ই Apache CXF দ্বারা সমর্থিত, এবং সার্ভিসের এন্ডপয়েন্টগুলি সহজেই তৈরি এবং কনফিগার করা যায়।

Content added By
Promotion